<?php namespace Home\Controller; 
use Hdphp\Controller\Controller;
//商品详细控制器
class DetailController extends Controller{

	//构造函数
	public function __init()
	{
		parent::__init();
	}
    public function index(){
    	//获得分类ID
		$cate_id = Q('get.cate_id',0,'intval');
		$goods_id = Q('get.goods_id',0,'intval');
		$gcateModel = new \Common\Model\Gcate;
		$goodsModel = new \Common\Model\Goods;
		
		//=====================获取 当前商品的详细信息（商品表goods 商品详细表goods_detail，2个表取数据）   开始=====================
		$goodsModel = new \Common\Model\Goods;
		$goodData = $goodsModel->join('goods_detail','goods_goods_id','=','goods_id')
							   ->where("goods_id={$goods_id}")
							   ->find();
		$goodData['goods_img'] = explode("|", $goodData['goods_img']);	
		$goodData['lessen'] = $goodData['market_price']- $goodData['shop_price'];
		View::with('goodData',$goodData);
		//=====================获取 当前商品的详细信息 （商品表goods 商品详细表goods_detail，2个表取数据）    结束=====================

		
		//=====================获取 当前商品的规格（商品表goods 类型属性表fattr，2个表取数据）     开始=====================
		$goodsAttr = Db::table('goods g')->join('fattr fa','g.form_fid','=','fa.form_fid')
										 ->where("goods_id={$goods_id} and fattr_type=0" )
										 ->field('fa_id,fattr_name,fattr_value,fattr_type')
					                     ->get();
		//只要是foreach的都要做下判断，否则，有数据正常；无数据，页面报错。	整个系统 里凡是
		if(is_array($goodsAttr) || !empty($goodsAttr)){
			foreach($goodsAttr as $k => $v){
				$goodsAttr[$k]['spec'] = Db::table('goods_attr')->where("goods_goods_id={$goods_id} and fattr_fa_id={$v['fa_id']}")->get();
			}
			//p($goodsAttr);
			View::with('goodsAttr',$goodsAttr);
		}

		//=====================获取 当前商品的规格   结束=====================
		
		
		//=====================当前位置   开始=====================
		// (在list列表页 商品 链接 执行 传参 添加分类id  商品详细页便能接到这个参数
		// 即 :  href="{{U('Detail/index',array('cate_id'=>$_GET['cate_id'],'goods_id'=>$v['goods_id']))}}")
		//$cate_id = Q('get.cate_id',0,'intval'); //商品有写，这里去掉。
		//p($cate_id);
				//获得所有分类
		$gcateAll = $gcateModel->get();
		$currentNav = $this->getfather($gcateAll, $cate_id);
		$currentNav = $this->unListArr($currentNav);
		//p($currentNav);exit;
		View::with('currentNav',$currentNav);
		//=====================当前位置   结束=====================
		
        View::make();
		
    }
	
	//=====================当前位置   开始=====================
	//当前位置(获取某一个元素的所有父级分类)
    public function getfather($data,$p_id){
//        p($data);
        $temp=array();
        foreach($data as $v){
//            $v
            if($v['cate_id'] == $p_id){
                $temp[]=$v;
                $temp=array_merge($temp,$this->getfather($data,$v['p_id']));//array_merge() 函数把一个或多个数组合并为一个数组。
            }
//            p($temp);
        }
        return $temp;

    }
    public function unListArr($data){
        for($i=0;$i<count($data);$i++){
            $arr[] = $data[count($data)-$i-1];
        }
        if(isset($arr)){
            return $arr;
        }else{
        	return 0;
		}
    }
	//=====================当前位置   结束=====================

}